package cn.rumoss.nettytest.time.pojo;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerAdapter;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelPromise;

public class TimeEncoder extends ChannelHandlerAdapter{
  
  /**
   * (1)通过ChannelPromise，当编码后的数据被写到了通道上Netty
   * 可以通过这个对象标记是成功还是失败
   * (2)不需要调用cxt.flush()。因为处理器已经单独分离出了一个方法void flush(ChannelHandlerContext cxt)
   */
  @Override
  public void write(ChannelHandlerContext ctx,Object msg,ChannelPromise promise) throws Exception{
    
    UnixTime date = (UnixTime)msg;
    ByteBuf encoded = ctx.alloc().buffer(4);
    encoded.writeInt(date.value());
    ctx.write(encoded,promise);
    
  }
  
}
